home *** CD-ROM | disk | FTP | other *** search
- /* #define DEBUG 0 */
- /* #define DEBUG1 0 */
-
- #define DEF_SCSI_ID 6 /* デフォルトSCSI-ID */
-
- #define cd_演奏開始 0
- #define cd_演奏開始_ALL 1
- #define cd_演奏中断 2
- #define cd_演奏再開 3
- #define cd_演奏情報 4
- #define cd_演奏リスト 5
- #define cd_取り込み 6
- #define cd_取り込み2 7
- #define cd_演奏開始2 8
-
- //#define CDPCM_LEN 44100*4 /* CDPCM 1秒分のワークレングス */
- //#define PCM_LEN 15600*2 /* PCM 1秒分のワークレングス */
- //#define ADPCM_LEN 15600/2 /* ADPCM 1秒分ワークレングス */
-
- #define CONVERT_PCMR 1 /* 44.1KHz 16BIT モノラル R */
- #define CONVERT_PCML 2 /* 44.1KHz 16BIT モノラル L */
- #define CONVERT_PCMM 3 /* 44.1KHz 16BIT ミキシング */
- #define CONVERT_PCM15 4 /* pcm15 mode */
- #define CONVERT_WAVE 5 /* 44.1KHz 16BIT ステレオ intel */
- #define CONVERT_PCMA 6 /* 44.1KHz ADPCM */
- #define CONVERT_A88 7 /* 88.2KHz ADPCM */
-
- #define CONVERT_R (0)
- #define CONVERT_L (1)
- #define CONVERT_M (2)
- #define CONVERT_AVE_R (3)
- #define CONVERT_AVE_L (4)
- #define CONVERT_AVE_M (5)
-
- #define PF 0x10 /* ページフォーマット */
- #define SP 0x01 /* セーブパラメータ */
-
- #define CD_CDU561 0 /* SONY CDU-561 */
- #define TOSHIBATYPE 1 /* SONY CDU-561 */
- #define SONYTYPE 0 /* TOSHIBA */
-
- #define CUP "\x0b"
- //#define CFC "\x1b[0K"
- #define CFC "\x1b[0J"
-
-
- /*------------------------------*/
- /* 関数 prototype */
- /*------------------------------*/
- void cd_play( int, int );
- void cd_play2( int, int, int );
- void cd_play_all( void );
- void cd_play_pause( void );
- void cd_play_resume( void );
- void cd_play_inf( void );
- void cd_play_list( void );
- void cdda2pcm( int, int, int );
-
- int RedTOC(int *, int *, int * );
- int scsi_cmd( int , unsigned char *, int , unsigned char * );
- int Music_inf(int , int* );
- int PlyDsk( int, int );
- int StpDsk( void );
- int Resume( void );
- int ReadSub( unsigned char * );
- void cd2pcm_help( void );
-
- int bin2time( int );
- int time2bin( int );
-
- int adr2time( int );
-
- void convert( int );
- void cdda_error( int );
- void AbortDisp( void );
-
- /*------------------------------*/
- /* 構造体 */
- /*------------------------------*/
- typedef struct {
- int fg; /* 状態 0x11 演奏中,0x12 演奏中断 */
- int track_no; /* 曲番号 */
- int time; /* 現在の演奏時間 */
- int address; /* 演奏アドレス */
- } PLYINF;
-
- /*-------------------------------------------
- 以下CDC用
- --------------------------------------------*/
-
- int CDC_CHK();
- int CDC_CALL();
- struct CDC_STAT_PTR {
- short CDIN; // 0;NoCD 1;SetCD
- int PLAYINF; // 状態 0x11;演奏中,0x12;一時停止,0x13;停止
- int TRAKNO; // 曲番号
- int PLAYTIME; // 演奏中の曲の経過時間 (MSF型)
- int CDLONG; // CD絶対総 経過時間 (MSF型)
- int TRAKLONG; // 現在演奏曲のながさ (MSF型)
- void* CDNAME; // CD名アドレス
- void* TRAKNAME; // 曲名アドレス
- void* LEDSTR; // LED文字アドレス -----以下LED部に表示される物
- int LEDTRAK; // LED数値 曲番号
- int LEDNO; // LED数値 1以上;プログラムナンバー
- // 0;表示無し -1;MAX= -2;INP= -3;Vol
- int LEDTIME; // LED数値 タイム (MSF型)
- int LEDSTAT; // LEDの状態
- // ┌bit 0 ■:停止
- // │bit 1 >:再生
- // │bit 2 ||:一時停止
- // イズレカ│bit 3 >>:早送り
- // └bit 4 <<:巻き戻し
- // ┌bit 5 ⊂:オート
- // └bit 6 ◯:リピート
- // bit 7 R:ランダム
- // bit 8 P:メモリー
- // (bit 9 B:BGM)
- char INKEYNUMH; // 入力されている数値(上)
- char INKEYNUML; // 入力されている数値(下)
- short LEDTIMEMODE; // LED数値 タイム のモード
- // 0;ノーマル
- // 1;リバース
- // 2;トータル
- // 3;トータルリバース
- short VOLUME; // Vol数値
- short MASTERVOL; // MasterVol数値(0ならボリューム機能無し)
- };
- struct CDC_TRACKS_PTR {
- short CDIN; // 0;NoCD 1;SetCD
- int CDCWORKS; // CDC.xの最大記憶数(以下,記憶数)
- int CDCTRAK; // CDの曲数
- int CDLONG; // CDの全演奏時間 (MSF型)
- int CDLISTFG; // CDCLISTにあったか -1ならあった
- char CDNAME[40]; // CD名 40-1文字
- char WORKS[0]; //
- // .dsb.b (記憶数)*40 各曲の名前 40-1文字
- // .dsb.l (記憶数) 各曲の演奏時間+拡張曲名flag
- // .dsb.l (記憶数) 各曲のスタート時間
- // (↑最上位ビットが立っ
- // ていれば データトラック)
- };
- struct CDC_ATRACK_PTR *CDC_ATRACK(int TN);
- struct CDC_ATRACK_PTR {
- char *NAME; // 各曲の名前 最大 39 文字
- int LONG; // 各曲の演奏時間+拡張曲名flag
- int START; // 各曲のスタート時間
- // (↑最上位ビットが立っ
- // ていれば データトラック)
- };
- struct CDC_PROG_PTR
- {
- short PROGLONG; // プログラム数
- unsigned char PROGNUM[100]; // 曲ナンバー
- };
- #define CDC_VERSION() CDC_CALL(0x00)
- #define CDC_INIT() CDC_CALL(0x01)
- #define CDC_STAT() (struct CDC_STAT_PTR *)CDC_CALL(0x02)
- #define CDC_TRACKS() (struct CDC_TRACKS_PTR *)CDC_CALL(0x03)
- #define CDC_SCSI_CHK() CDC_CALL(0x04)
- #define CDC_RELED() CDC_CALL(0x05)
- #define CDC_INKEY(KB) CDC_CALL(0x07,KB)
- #define CDC_PROG() (struct CDC_PROG_PTR*)CDC_CALL(0x08)
- #define CDC_PROGIN(NUM,PGN) CDC_CALL(0x09,NUM,PGN)
- #define CDC_PROGOUT() CDC_CALL(0x0A)
- #define CDC_PROGTIME() (int*)CDC_CALL(0x0F)
- #define CDC_PLAY(ST,ET) CDC_CALL(0x10,ST,ET)
- #define CDC_PAUSE() CDC_CALL(0x11)
- #define CDC_RESUME() CDC_CALL(0x12)
- #define CDC_MVPLAY(OFS) CDC_CALL(0x13,OFS)
- #define CDC_BGM(T1,T2,T3,T4) CDC_CALL(0x14,T1,T2,T3,T4)
- #define CDC_STOP() CDC_CALL(0x15)
- #define PLAYWAIT() CDC_CALL(0x1D)
- #define CDC_VOL(VL) CDC_CALL(0x1E,VL)
- #define CDC_FADEOUT(SW) CDC_CALL(0x1F,SW)
- #define CDC_DRIVE() CDC_CALL(0x30)
- #define CDC_MODE(MD) CDC_CALL(0x31,MD)
- #define CDC_KEYMODE(MD) CDC_CALL(0x32,MD)
- #define CDC_LED(MD) CDC_CALL(0x33,MD)
- #define CDC_TIMING(TM) CDC_CALL(0x34,TM)
- #define CDC_POWER(MD) CDC_CALL(0x35,MD)
- #define CDC_TRACKMODE(MD) CDC_CALL(0x36,MD)
- #define CDC_KEYCANSEL(NK) CDC_CALL(0x37,NK)
- #define CDC_TIMELED(MD) CDC_CALL(0x38,MD)
- #define CDC_LEDXY() CDC_CALL(0x39)
- #define CDC_SCSIID() CDC_CALL(0x3a)
- #define CDC_EJEEMU() CDC_CALL(0x3b)
- #define CDC_CHGLUN(LN) CDC_CALL(0x3c,LN)